<?php
App::uses('AppModel', 'Model');
/**
 * Itensemprestimo Model
 *
 * @property Emprestimo $Emprestimo
 * @property Equipamento $Equipamento
 */
class Itensemprestimo extends AppModel {
/**
 * Validation rules
 *
 * @var array
 */
	public $validate = array(
		'quantidade' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				'message' => 'Por favor, informe a quantidade',
				'allowEmpty' => false,
				'required' => true,
				//'last' => false, // Stop validation after this rule
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
			),
			'integer' => array(
				'rule' => array('comparison', '>=', 1),
				'message' => 'A quantidade deve ser maior ou igual a 1.'
			),
			'stock' => array(
				'rule' => array('hasStock'),
				'message' => 'A quantidade solicitada não está disponível.'
			),
			'reserve' => array(
				'rule' => array('hasReserve'),
				'message' => 'Existe uma reserva em andamento.'
			)
		),
		'equipamento_id' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				'message' => 'Por favor, informa o equipamento',
				'allowEmpty' => false,
				'required' => true,
				//'last' => false, // Stop validation after this rule
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
			),
		),
	);

	//The Associations below have been created with all possible keys, those that are not needed can be removed

/**
 * belongsTo associations
 *
 * @var array
 */
	public $belongsTo = array(
		'Equipamento' => array(
			'className' => 'Equipamento',
			'foreignKey' => 'equipamento_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		),
		'Emprestimo' => array(
				'className' => 'Emprestimo',
				'foreignKey' => 'emprestimo_id',
				'conditions' => '',
				'fields' => '',
				'order' => ''
		)			
	);
	

/**
 * Verifica se o equipamento do empréstimo possui quantidade disponível
 * 
 * @param mixed $check
 * @return boolean
 */
	public function hasStock($check) {
		return true;
	}
	
	
/**
 * Verifica se o equipamento do empréstimo possui alguma pedido de reserva em andamento
 * 
 * @param mixed $check
 * @return boolean
 */
	public function hasReserve($check) {
		return true;
	} 
}
